package org.jaaksi.plugin.trace

import javassist.ClassPool
import org.gradle.api.Project

class AndroidClassPool {

  private static final String TAG = "AndroidClassPool"

  private static ClassPool sClassPool

  static ClassPool getClassPool() {
    return sClassPool
  }

  static void resetClassPool(Project project) {
    // ClassPool.getDefault() 有可能被其他使用 Javassist 的插件污染（如 nuwa），
    // 导致ClassPool中出现重复的类，Javassist 抛出异常，所以不能使用默认的
    sClassPool = new ClassPool()
    sClassPool.appendSystemPath()

    // bootClasspath 包括 android.jar 和 useLibrary 指定的library 的路径（如 org.apache.http.legacy )
    project.android.bootClasspath.each {
      sClassPool.appendClassPath(it.absolutePath)
    }
  }
}
